package model.entity;

import reports.visitor.IVisitor;

public interface INode
{

  /**
   * This function accepts a visitor and then call visit with the visitor. The visits are done in a
   * pre-order traversal
   * 
   * @param visitor
   *          instance of IVisitor that is visiting the node
   */
  public void preOrderAccept(IVisitor visitor);

  /**
   * This function accepts a visitor and then call visit with the visitor. The visits are done in a
   * post-order traversal
   * 
   * @param visitor
   *          instance of IVisitor that is visiting the node
   */
  public void postOrderAccept(IVisitor visitor);

}
